[INV-BACKEND-051] Создать метод POST /api/v1/consume/items
Разработка внедоменного эндпоинта фиксации потребления продуктов
NoteКраткая карточка задачи
- Репозиторий / Компонент:
backend-api(FastAPI Gateway). - Контракт метода:
POST /api/v1/consume/items. - Ссылка на Метод: Спецификация публикации фактов создания готовых блюд
- Статус: Готово к реализации
- Инструкция по шагам:
- На Шагах 1-2: Реализовать прием запроса от мобильного приложения. Обязательно извлечь или сгенерировать сквозной
X-Request-ID(trace_id). - На Шаге 3: Разработать схему Pydantic-валидации входящего тела запроса. Поля:
space_type(строго ENUM:HOME,OFFICE),spent_items(массив объектов:food_element_id,quantityв литрах/граммах/порциях). - Перенаправить валидированный пакет данных по внутреннему gRPC или HTTP-интерфейсу в нижележащий микросервис
consume-service. - Принять пакет данных от
backend-api. Пробросить заголовокX-Request-ID. - На Шаге 4: Выполнить синхронный gRPC-вызов к смежному компоненту
fridge-service, вызвав методMutateBalancesи передав структуруspent_itemsи признакspace_type. - На Шаге 8-9: При получении успешного gRPC-статуса от
fridge-service, мгновенно вернуть Gateway статус200 OKдля разблокировки UI мобильного клиента. - На Шаге 10: Сразу после ответа клиенту, в асинхронном режиме (Fire-and-Forget) сформировать и отправить пакет в Kafka-топик
bpds.pma.out.process.eventс признакомevent_type: "CONSUMED". В Payload передать детализацию съеденного,space_typeиtrace_id.
- На Шагах 1-2: Реализовать прием запроса от мобильного приложения. Обязательно извлечь или сгенерировать сквозной